package excercise;

import java.util.Scanner;

// 자릿수 구분 문자 _
// 	정수 리터럴이 너무 길면 가독성에 문제 있음
// 	JDK 7에 새롭게 추가된 기능 중 하나는 3 자릿수마다 _ 를 사용할 수 있게 한것

// 클래스에 사용되는 변수의 종류
// 	멤버(member) 변수 - class 블록내 선언한 변수 / 해당 클래스를 통해서만 사용가능한 변수
// 	인스턴스(instance) / 객체(object) 변수 - 객체를 가리키는 변수 / 클래스와 new 연산자를 사용한 문장을 실행했을 때의 결과물
public class EX04_001 {

	public static void main(String[] args) {
		
		Retangle rRed = new Retangle();
		rRed.width = 4;
		rRed.height = 40;
		rRed.color = "red";

		System.out.println("사각형 너비 : " + rRed.width);
		System.out.println("사각형 높이 : " + rRed.height);
		System.out.println("사각형 색상 : " + rRed.color);
		System.out.println("사각형 넓이 : " + rRed.getArea());
		System.out.println("사각형 둘레 : " + rRed.getPerimeter() + "\n");
		
		Retangle rOrange = new Retangle();
		rOrange.width = 3.5f;
		rOrange.height = 35.9f;
		rOrange.color = "orange";
		
		System.out.println("사각형 너비 : " + rOrange.width);
		System.out.println("사각형 높이 : " + rOrange.height);
		System.out.println("사각형 색상 : " + rOrange.color);
		System.out.println("사각형 넓이 : " + rOrange.getArea());
		System.out.println("사각형 둘레 : " + rOrange.getPerimeter() + "\n");

		Fan f1 = new Fan();
		f1.speed = f1.FAST;
		f1.on = true;
		f1.radius = 10;
		f1.color = "yellow";
		System.out.println("선풍기 속도 : " + f1.speed);
		System.out.println("선풍기 팬의 크기 : " + f1.radius);
		System.out.println("선풍기 색상 : " + f1.color);
		System.out.println("선풍기 동작여부 : " + f1.showFanInfo() + "\n");
		
		Fan f2 = new Fan();
		f2.speed = f2.MEDIUM;
		f2.on = false;
		f2.radius = 5;

		System.out.println("선풍기 속도 : " + f2.speed);
		System.out.println("선풍기 팬의 크기 : " + f2.radius);
		System.out.println("선풍기 색상 : " + f2.color);
		System.out.println("선풍기 동작여부 : " + f2.showFanInfo() + "\n");

		
		Account cust01 = new Account();
		cust01.aid = 1122;
		cust01.balance = 20000;
		cust01.interestRate = 4.5f;
		cust01.dateCreated = "2013-11-06 13:15:45";
		
		System.out.println(cust01.balance);
		cust01.withDraw(3500);
		System.out.println(cust01.balance);
		
		Stock iedu = new Stock();
		iedu.sname = "경영기술";
		iedu.previousClosingPrice =	750000;
		iedu.currentPriec = 1500000;
		
		System.out.println(iedu.getChangePercent());
		
	} // main
} // class

class Retangle {
	float width = 1.0f;
	float height = 1.0f;
	String color = "white";
	
	float getArea() {
		return width * height;
	}
	
	float getPerimeter() {
		return 2 * width + 2 * height;
	}
	
	void showRetangle() {
		System.out.println(this.getArea());
		System.out.println(this.getPerimeter());
	}
}

class Fan {
	final int SLOW = 1;
	final int MEDIUM = 2;
	final int FAST = 3;
	int speed = SLOW;
	boolean on = false;
	float radius = 5.0f;
	String color = "blue";
	
	String showFanInfo() {
		if (on = true) {
			return "작동중";
		} else { return "꺼져있음"; }
	}
}

class Account {
	int aid = 0;
	int balance = 0;
	float interestRate = 0;
	String dateCreated;
	
	float getMonthlyInterestRate() {
		return interestRate / 12;
	}
	
//	int withDraw(int gold) {
//		System.out.println(balance - gold);
//		return balance - gold;
//	}
// call by value 로 인해 예금 금액이 제대로 차감되지 않음
	
	
	int withDraw(int gold) {
		return balance -= gold;
	}
	
	
	int deposit(int gold) {
		return balance += gold ;
	}
	
}

class Stock {
	String sname;
	int previousClosingPrice;
	int currentPriec;
	
	float getChangePercent() {
		return ((1 - ((float)currentPriec / previousClosingPrice)) * 100);
	}
}

